---
title: java经典框架-springcloud
date: 2024-03-21 22:10:43
images: ['https://kodo.huixiangwuyou.com/blog/images/414184459.png']
summary: 'SpringBoot 是由 Pivotal 团队提供的全新框架，其设计目的是为了解决企业级应用开发的复杂性而创建的，简化开发。'
tags: 
 - java
---


## springcloud、kubernetes(docker)、Dubbo的区别和联系


| 特性 | Dubbo | springcloud | kubernetes |
| --- | --- | --- | --- |
| 服务发现和LB | ZK/Nacos + Client | Eureka + Ribbon | Service |
| API网关 | `NA` | Zuul  | Ingress |
| 配置管理 | Diamond/Nacos | Spring Cloud Config | ConfigMaps/Secrets |
| 容错限流 | Sentinel | Hystrix  | Healt.Check/Probe/ServiceMesh |
| 日志监控 | ELK | ELK | EFK |
| Metrics监控 | Dubbo Admin/Monitor | Actuator/MicroMeter + Prometheus | Heapster+Prometheus |
| 调用链监控 | `NA` | SpringCloud Sleuth/Zipkin | Jaeger/Zipkin |
| 应用打包 | Jar/War | Uber Jar/War | Docker lmage/Helm |
| 服务框架 | Dubbo RPC | Spring(Boot) REST | `框架无关` |
| 发布和调度 | `NA` | `NA` | Scheduler |
| 自动伸缩和自愈 | `NA` | `NA` | Scheduler/AutoScaler |
| 进程隔离 | `NA` | `NA` | Docker/Pod |
| 环境管理 | `NA` | `NA` | Namespace/Auththorization |
| 资源配额 | `NA` | `NA` | CPU/Mem Limit ,Namespace Quotas |
| 流量治理 | ZK + Client | `NA` | ServiceMesh |

- springcloud 与 springboot 高度集成 ，对非 Java 语言支持较弱。运行环境为 jvm，需要依赖 jvm 环境。相对吃内存资源
  - 适合中小型微服务系统
  - 云原生应用开发
  - Java 技术栈的微服务架构

- kubernetes 与 docker 高度集成，对非 Java 语言支持较好。运行环境为容器，不需要依赖 jvm 环境。相对节省内存资源，但是​学习曲线陡峭，资源开销大、容器启动时间可能影响低延迟场景、容器内问题排查比传统应用更复杂
  - 多语言混合架构
  - 大规模分布式系统
  - 云原生基础设施
  - ​混合云/跨云部署

- dubbo 在国内比较流行，国外使用范围小，对非 Java 语言支持较好。运行环境为 jvm，需要依赖 jvm 环境。相对节省内存资源
  - 高性能 RPC 通信
  - ​Java 技术栈的微服务
  - 内部服务治理
  - 逐步将单体应用拆分为微服务
  - 逐渐被 kubernetes 和 SpringCloud 生态取代